Continuing from
16c0cfe9b59e2c619d4c57be9c995849af9f659f, we now have
the problem that we're removing the executable bit, which obviously
breaks things when we chroot in for a build. Fix this by masking over
our bits.
if (finfo != NULL)
{
mode = g_file_info_get_attribute_uint32 (finfo, "unix::mode");
- /* Archived content files should always be 0644 */
+ /* Archived content files should always be readable by all and
+ * read/write by owner. If the base file is executable then
+ * we're also executable.
+ */
if (is_archived_content)
- mode = (mode & S_IFMT) | 0644;
+ mode |= 0644;
}
else
{